;Assembler header file for ImageFileRender
;written by DefMod (Dec 31 2005) on Sat Dec 31 14:11:42 2005
;Tom Hughes, tom@compton.nu, 22 Nov 2002

        [       :LNOT: :DEF: ImageFileRender_Hdr
        GBLS    ImageFileRender_Hdr

        [       :LNOT: :DEF: Get_Types
        GBLS    Get_Types
        ]
        [       :LNOT: :DEF: Types_Hdr
Get_Types                       SETS    "GET oslib/Types.Hdr"
        |
Get_Types                       SETS    ""
        ]
        $Get_Types

        [       :LNOT: :DEF: Get_OS
        GBLS    Get_OS
        ]
        [       :LNOT: :DEF: OS_Hdr
Get_OS                          SETS    "GET oslib/OS.Hdr"
        |
Get_OS                          SETS    ""
        ]
        $Get_OS

        [       :LNOT: :DEF: Get_OSSpriteOp
        GBLS    Get_OSSpriteOp
        ]
        [       :LNOT: :DEF: OSSpriteOp_Hdr
Get_OSSpriteOp                  SETS    "GET oslib/OSSpriteOp.Hdr"
        |
Get_OSSpriteOp                  SETS    ""
        ]
        $Get_OSSpriteOp

        [       :LNOT: :DEF: Get_PDriver
        GBLS    Get_PDriver
        ]
        [       :LNOT: :DEF: PDriver_Hdr
Get_PDriver                     SETS    "GET oslib/PDriver.Hdr"
        |
Get_PDriver                     SETS    ""
        ]
        $Get_PDriver

;Symbols for constants
ImageFileRender_DefaultImage    *       &0
ImageFileRender_BaseDetailQuery *       &0
ImageFileRender_ImageIsSolid    *       &1
ImageFileRender_TransformationType *       &7
ImageFileRender_TransformationTypeShift *       0
ImageFileRender_RenderToFit     *       0
ImageFileRender_RenderScaled    *       1
ImageFileRender_RenderTransformed *       2
ImageFileRender_ColourMappingSupplied *       &8
ImageFileRender_IgnoreDocumentOrigin *       &10
ImageFileRender_ReturnOSUnits   *       &20
ImageFileRender_Quality         *       &1C0
ImageFileRender_QualityShift    *       6
ImageFileRender_DefaultQuality  *       0
ImageFileRender_LowestQuality   *       1
ImageFileRender_HighestQuality  *       15
ImageFileRender_TransformationCapabilities *       &3
ImageFileRender_TransformationCapabilitiesShift *       0
ImageFileRender_NoTransformation *       0
ImageFileRender_FixedAspectRatio *       1
ImageFileRender_AnyAspectRatio  *       2
ImageFileRender_AnyTransformation *       3
ImageFileRender_SupportsColourMapping *       &4
ImageFileRender_SupportsIrregularShapes *       &8
ImageFileRender_MaximumQualityLevel *       &F0
ImageFileRender_MaximumQualityLevelShift *       4
ImageFileRender_DefaultQualityLevel *       &F00
ImageFileRender_DefaultQualityLevelShift *       8

;Symbols for structure offsets and sizes
                                ^       0
                                #       Int
ImageFileRender_SequenceNumber  *       @

                                ^       0
ImageFileRender_FitBlock_width  #       Int
ImageFileRender_FitBlock_height #       Int
ImageFileRender_FitBlock_border #       Int
ImageFileRender_FitBlock_angle  #       Int
ImageFileRender_FitBlock        *       @

                                ^       0
ImageFileRender_TransformationData_to_fit #       ImageFileRender_FitBlock
                                ^       0
ImageFileRender_TransformationData_scaled #       OS_Factors
                                ^       0
ImageFileRender_TransformationData_transformed #       OS_Trfm
ImageFileRender_TransformationData *       @

                                ^       0
                                #       Int
ImageFileRender_QueryType       *       @

                                ^       0
                                #       Bits
ImageFileRender_ImageFlags      *       @

                                ^       0
ImageFileRender_BaseDetails_sequence #       ImageFileRender_SequenceNumber
ImageFileRender_BaseDetails_xdpi #       Int
ImageFileRender_BaseDetails_ydpi #       Int
ImageFileRender_BaseDetails_colour_type #       OSSpriteOp_ModeWord
ImageFileRender_BaseDetails_image_flags #       ImageFileRender_ImageFlags
ImageFileRender_BaseDetails     *       @

                                ^       0
                                #       Bits
ImageFileRender_Flags           *       @

                                ^       0
                                #       Bits
ImageFileRender_RendererFlags   *       @

ImageFileRender_Magic           *       4 ;abstract type
                                ^       0
ImageFileRender_Renderer_api_version #       Int
ImageFileRender_Renderer_flags  #       ImageFileRender_RendererFlags
ImageFileRender_Renderer_file_type #       Bits
ImageFileRender_Renderer_magic  #       ImageFileRender_Magic
ImageFileRender_Renderer_name   #       Ptr
ImageFileRender_Renderer_workspace #       Ptr
ImageFileRender_Renderer_start  #       Ptr
ImageFileRender_Renderer_stop   #       Ptr
ImageFileRender_Renderer_render #       Ptr
ImageFileRender_Renderer_bbox   #       Ptr
ImageFileRender_Renderer_declare_fonts #       Ptr
ImageFileRender_Renderer_info   #       Ptr
ImageFileRender_Renderer        *       @

                                ^       0
ImageFileRender_ImageDescriptor_data #       Ptr
ImageFileRender_ImageDescriptor_size #       Int
ImageFileRender_ImageDescriptor_extension_data #       Ptr
ImageFileRender_ImageDescriptor_sequence #       ImageFileRender_SequenceNumber
ImageFileRender_ImageDescriptor_private_data #       Ptr
ImageFileRender_ImageDescriptor *       @

                                ^       0
ImageFileRender_RenderingDescriptor_flags #       ImageFileRender_Flags
ImageFileRender_RenderingDescriptor_trfm #       OS_Trfm
ImageFileRender_RenderingDescriptor_bbox #       OS_Box
ImageFileRender_RenderingDescriptor_mapping #       OSSpriteOp_ColourMapping
ImageFileRender_RenderingDescriptor *       @

                                ^       0
ImageFileRender_BBoxDescriptor_flags #       ImageFileRender_Flags
ImageFileRender_BBoxDescriptor_trfm #       OS_Trfm
ImageFileRender_BBoxDescriptor_bbox #       OS_Box
ImageFileRender_BBoxDescriptor  *       @

                                ^       0
ImageFileRender_DeclareFontsDescriptor_flags #       ImageFileRender_Flags
ImageFileRender_DeclareFontsDescriptor_pdriver_flags #       PDriver_FontFlags
ImageFileRender_DeclareFontsDescriptor *       @

                                ^       0
ImageFileRender_InfoDescriptor_query #       ImageFileRender_QueryType
ImageFileRender_InfoDescriptor_size #       Int
ImageFileRender_InfoDescriptor_data #       Ptr
ImageFileRender_InfoDescriptor  *       @


;Symbols for SWI's and SWI reason codes
XImageFileRender_Render         *       &762C0
ImageFileRender_Render          *       &562C0
   ;Entry
   ;  R0 = flags (ImageFileRender_Flags)
   ;  R1 = file_type (Bits)
   ;  R2 -> data (data)
   ;  R3 = size (Int)
   ;  R4 -> extension_data (data)
   ;  R5 = sequence (ImageFileRender_SequenceNumber)
   ;  R6 = xorigin (Int)
   ;  R7 = yorigin (Int)
   ;  R8 -> transformation_data (ImageFileRender_TransformationData)
   ;  R9 -> colour_mapping (OSSpriteOp_ColourMapping)

XImageFileRender_BBox           *       &762C1
ImageFileRender_BBox            *       &562C1
   ;Entry
   ;  R0 = flags (ImageFileRender_Flags)
   ;  R1 = file_type (Bits)
   ;  R2 -> data (data)
   ;  R3 = size (Int)
   ;  R4 -> extension_data (data)
   ;  R5 = sequence (ImageFileRender_SequenceNumber)
   ;  R6 -> transformation_data (ImageFileRender_TransformationData)
   ;  R7 = bbox (pointer to OS_Box)

XImageFileRender_Transform      *       &762C2
ImageFileRender_Transform       *       &562C2
   ;Entry
   ;  R0 = flags (ImageFileRender_Flags)
   ;  R1 = file_type (Bits)
   ;  R2 -> data (data)
   ;  R3 = size (Int)
   ;  R4 -> extension_data (data)
   ;  R5 = sequence (ImageFileRender_SequenceNumber)
   ;  R6 -> transformation_data (ImageFileRender_TransformationData)
   ;  R7 = trfm (pointer to OS_Trfm)
   ;Exit
   ;  R0 = xdpi (Int)
   ;  R1 = ydpi (Int)

XImageFileRender_DeclareFonts   *       &762C3
ImageFileRender_DeclareFonts    *       &562C3
   ;Entry
   ;  R0 = flags (ImageFileRender_Flags)
   ;  R1 = file_type (Bits)
   ;  R2 -> data (data)
   ;  R3 = size (Int)
   ;  R4 -> extension_data (data)
   ;  R5 = sequence (ImageFileRender_SequenceNumber)
   ;  R6 = pdriver_flags (PDriver_FontFlags)

XImageFileRender_Info           *       &762C4
ImageFileRender_Info            *       &562C4
   ;Entry
   ;  R0 = flags (ImageFileRender_Flags)
   ;  R1 = file_type (Bits)
   ;  R2 -> data (data)
   ;  R3 = size (Int)
   ;  R4 -> extension_data (data)
   ;  R5 = sequence (ImageFileRender_SequenceNumber)
   ;  R6 = query (ImageFileRender_QueryType)
   ;  R7 = query_data (pointer to data)
   ;  R8 = query_data_size (Int)
   ;Exit
   ;  R8 = size_used (Int)

ImageFileRender_InfoBaseDetails *       &0
   ;Entry
   ;  R0 = flags (ImageFileRender_Flags)
   ;  R1 = file_type (Bits)
   ;  R2 -> data (data)
   ;  R3 = size (Int)
   ;  R4 -> extension_data (data)
   ;  R5 = sequence (ImageFileRender_SequenceNumber)
   ;  R6 = &0
   ;  R7 = base_details (pointer to ImageFileRender_BaseDetails)
   ;  R8 = base_details_size (Int)
   ;Exit
   ;  R8 = size_used (Int)

XImageFileRender_RendererInfo   *       &762C5
ImageFileRender_RendererInfo    *       &562C5
   ;Entry
   ;  R0 = flags (ImageFileRender_Flags)
   ;  R1 = file_type (Bits)
   ;  R2 = magic (ImageFileRender_Magic)
   ;Exit
   ;  R0 -> definition (ImageFileRender_Renderer)
   ;  R1 = name (pointer to Char)

XImageFileRender_Register       *       &762C6
ImageFileRender_Register        *       &562C6
   ;Entry
   ;  R0 = flags (ImageFileRender_Flags)
   ;  R1 -> definition (ImageFileRender_Renderer)
   ;Exit
   ;  R1 = api_version (Int)

XImageFileRender_Deregister     *       &762C7
ImageFileRender_Deregister      *       &562C7
   ;Entry
   ;  R0 = flags (ImageFileRender_Flags)
   ;  R1 = file_type (Bits)
   ;  R2 -> name (Char)
   ;  R3 = magic (ImageFileRender_Magic)
   ;Exit
   ;  R1 = api_version (Int)

Service_ImageFileRenderStarted  *       &80D40
   ;Entry
   ;  R0 = api_version (Int)
   ;  R1 = &80D40

Service_ImageFileRenderDying    *       &80D41
   ;Entry
   ;  R0 = api_version (Int)
   ;  R1 = &80D41

Service_ImageFileRenderRendererChanged *       &80D42
   ;Entry
   ;  R0 = api_version (Int)
   ;  R1 = &80D42
   ;  R2 = file_type (Bits)

        ]
        END
